package com.google.code.guava.reflect;

import java.lang.reflect.Method;
import java.util.Collection;

import com.google.code.guava.base.Callback;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;

public final class Methods{

    private Methods(){

    }

    public static Collection<Method> methodsOfClass(final Class<?> clazz,
        final Predicate<Method> predicate){
        return Collections2.filter(Lists.newArrayList(clazz.getDeclaredMethods()),
            predicate);
    }

    public static void visitMethods(final Iterable<Class<?>> classes,
        final Callback<Method> visitor, final Predicate<Method> methodPredicate){

    }

    public static void visitMethods(final Class<?> startClass,
        final Class<?> stopClass, final Callback<Method> visitor,
        final Predicate<Method> methodPredicate){

    }

}
